package br.uff.javaavancado.dao;

import br.uff.javaavancado.dao.controle.MetodoRecupera;
import br.uff.javaavancado.dao.controle.MetodoRecuperaLista;
import br.uff.javaavancado.dao.generic.DaoGenerico;
import br.uff.javaavancado.exception.ObjetoNaoEncontradoException;
import br.uff.javaavancado.modelos.Cliente;
import br.uff.javaavancado.modelos.Pedido;
import java.util.List;

public interface ClienteDAO extends DaoGenerico<Cliente, Long>{

    @MetodoRecupera
    public Cliente getClienteComPedidoAberto(Cliente c);

    @MetodoRecupera
    public Cliente getClientePorLogin(String login) throws ObjetoNaoEncontradoException;

    @MetodoRecuperaLista
    public List<Cliente> recuperaListaTrack();

    @MetodoRecuperaLista
    public List<Cliente> recuperaListaTrackSetor(Pedido pedido);
    
}
